home *** CD-ROM | disk | FTP | other *** search
- INCLUDE STD.H
-
- CODE SEGMENT
- ASSUME CS:CODE, DS:CODE, ES:CODE
-
- ORG 80H
-
- CMDLEN DB ?
- CMDBUF DB 127 DUP(?)
-
- ORG 100H
-
- START:
- MOV BL, CMDLEN
- CMP BL, 4
- JNB SWITCH
- JMP USE
-
- SWITCH:
- XOR BH, BH
- CMP CMDBUF[BX - 2], '/'
- JE SW_OK
- JMP USE
-
- SW_OK:
- MOV DX, OFFSET CMDBUF[1]
- MOV CMDBUF[BX - 2], 0
-
- MOV AX, 4300H
- INT 21H
- JNC CHKCX
- JMP ERROR
-
- CHKCX:
- TEST CX, SBD
- JE SUBD
- TEST CX, LBL
- JE LABL
- JMP SHORT GETSW
-
- SUBD:
- MOV TRG, NOT 10H
- JMP SHORT GETSW
-
- LABL:
- MOV TRG, NOT 08H
- JMP SHORT GETSW
-
- GETSW:
- MOV AL, CMDBUF[BX - 1]
- CMP AL, '?'
- JNE GET1
- JMP LIST
-
- GET1:
- AND AL, NOT('A' XOR 'a')
- CMP AL, 'R'
- JE R
- CMP AL, 'W'
- JE W
- CMP AL, 'H'
- JE H
- CMP AL, 'N'
- JE N
- CMP AL, 'S'
- JE S
- CMP AL, 'B'
- JE B
- JMP SERROR
-
- R:
- OR CX, READ_ONLY
- CMP CX, READ_ONLY + HIDDEN
- JE S
- JMP CHANGE
-
- W:
- AND CX, NOT READ_ONLY
- JMP CHANGE
-
- H:
- OR CX, HIDDEN
- CMP CX, HIDDEN + READ_ONLY
- JE S
- JMP CHANGE
-
- N:
- AND CX, NOT HIDDEN
- JMP SHORT CHANGE
-
- S:
- MOV CX, SYSTEM
- JMP SHORT CHANGE
-
- B:
- AND CX, 00100011B
- JMP SHORT CHANGE
-
- CHANGE:
-
- MOV AX, 4301H
- INT 21H
- JC ERROR
- XOR AL, AL
- JMP RETURN
-
- SERROR:
- PRINT SERRMSG
-
- MOV AL, 1
- JMP RETURN
-
- ERROR:
- PRINT ERRMSG
-
- MOV AL, 2
- JMP RETURN
-
- USE:
- PRINT USEMSG
-
- JMP RETURN
-
- INCLUDE CHK.ASM
-
- RETURN:
- CRLF
-
- MOV AH, 4CH
- INT 21H
-
- INCLUDE ATTR.DEF
-
- CODE ENDS
- END START